package com.tdengine.enums;


import com.baomidou.mybatisplus.core.conditions.ISqlSegment;

/**
 * SQL 保留关键字枚举
 *
 * @author zhangtao
 * @since 2022-04-02
 */
public enum TdSqlKeyword implements ISqlSegment {
    /**
     * AVG
     */
    AVG("AVG"),
    /**
     * MAX
     */
    MAX("MAX"),
    /**
     * MIN
     */
    MIN("MIN"),
    /**
     * SUM
     */
    SUM("SUM"),
    /**
     * DEV
     */
    DEV("DEV"),
    /**
     * STDDEV
     */
    STDDEV("STDDEV"),
    /**
     * TWA
     */
    TWA("TWA"),
    /**
     * MODE
     */
    MODE("MODE"),
    /**
     * FIRST
     */
    FIRST("FIRST"),
    /**
     * LAST
     */
    LAST("LAST"),
    /**
     * LAST_ROW
     */
    LAST_ROW("LAST_ROW"),
    /**
     * TOP
     */
    TOP("TOP"),
    /**
     * BOTTOM
     */
    BOTTOM("BOTTOM"),
    /**
     * DIFF
     */
    DIFF("DIFF"),
    /**
     * SPREAD
     */
    SPREAD("SPREAD"),
    /**
     * LEASTSQUARES
     */
    LEASTSQUARES("LEASTSQUARES"),
    /**
     * PERCENTILE
     */
    PERCENTILE("PERCENTILE"),
    /**
     * INTERVAL a(毫秒)、s(秒)、m(分)、h(小时)、d(自然日)、w(周)， n(自然月) 和 y(自然年)
     */
    INTERVAL("INTERVAL"),
    /**
     * SLIDING
     */
    SLIDING("SLIDING"),
    /**
     * SESSION
     */
    SESSION("SESSION"),
    /**
     * STATE_WINDOW
     */
    STATE_WINDOW("STATE_WINDOW"),
    /**
     * FILL
     */
    FILL("FILL");

    private final String keyword;

    TdSqlKeyword(final String keyword) {
        this.keyword = keyword;
    }

    @Override
    public String getSqlSegment() {
        return this.keyword;
    }
}
